// 3.小美的外卖节省钱计划
// 时间限制：C/C++ 1秒，其他语言2秒

// 空间限制：C/C++ 256M，其他语言512M

// 2020年的618不再仅仅是购物节啦，同时也是美团外卖节，小美早早就准备好了各种满减代金券，为了最大程度的“省钱”，当然是选择把这些代金券都用光啦！

//        这些代金券都有一个使用门槛，即满多少元的订单才可以使用。如果使用一个二元组<x,y>表示一张代金券，即需要满x元才能优惠y元，那么需要注意的是，并不是所有代金券的x都是大于等于y的，良心美团也会推出一些x<y的代金券。如果x<y,例如x=1，y=2，则购买1元商品的情况下无需付款，不会退款给用户。

// 请问小美如果想用完这些代金券，在保证总付款金额最小的情况下，她最多购买多少钱的外卖呢？

// 说明：

// 1.一个订单只能用一张代金券。

// 2.同时满足总付款金额最少，且购买的外卖价值最高，例如两个优惠完都是1元的外卖，一个原价3元另一个原价4元，则选四元的。

// 3.由于美团商户很多，所以对于任何一个价格我们都可以找到至少一种商品购买。


// 输入描述:
// 输入第一行仅包含一个正整数n，表示小美拥有的代金券数量。(1<=n<=50000)

// 接下来有n行，每行有两个整数x和y，表示一张代金券需要订单金额满x元可以使用，能够优惠y元。(1<=x<=10000,1<=y<=10000)


// 输出描述:
// 输出仅包含两个正整数，中间用空格隔开,分别表示小美购买的外卖价值和她的实际付款金额。

// 输入例子1:
// 3
// 5 3
// 10 5
// 1 2

// 输出例子1:
// 17 7

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int n = 0;
    cin >> n;

    int sum1 = 0, sum2 = 0;

    for(int i = 0; i < n; ++i) {
        int x, y;
        cin >> x >> y;
        if(x >= y) {
            sum1 += x;
            sum2 += (x - y);
        } else {
            sum1 += y;
            // sum2不用加， 0元购买
        }
    }

    cout << sum1 << " " << sum2 << endl;

    return 0;
}